package com.xu.system.service;

import com.xu.base.model.BaseSelectVo;
import com.xu.mybatis.model.PageInfo;
import com.xu.system.model.pojo.role.*;

import java.util.List;

/**
 * 角色服务
 *
 * @Author: 许乾伟
 * @Date: 2024/12/17 15:55
 */
public interface IRoleService {
    /**
     * 添加角色
     * @param req 添加角色参数
     * @return true/false
     */
    Boolean add(AddRoleReq req);
    /**
     * 编辑角色
     * @param req 编辑角色参数
     * @return true/false
     */
    Boolean edit(EditRoleReq req);
    /**
     * 删除角色
     * @param roleId 角色id
     * @return true/false
     */
    Boolean del(Long roleId);

    /**
     * 角色详细信息
     * @param roleId 角色id
     * @return
     */
    RoleVo detail(Long roleId);

    /**
     * 分页获取角色简易信息
     * @param req 分页查询参数
     * @return 角色简易信息列表
     */
    PageInfo<RoleSimpleVo> pageInfo(QueryRoleReq req);

    /**
     * 角色下拉列表
     * @return
     */
    List<BaseSelectVo<Long,String>> allSelectList();

    /**
     * 角色授权
     * @param req
     * @return
     */
    Boolean authorize(RoleAuthorizeReq req);

    /**
     * 返回角色关联信息
     * @param roleId
     * @return
     */
    RoleRelevanceVo getRoleRelevanceVo(Long roleId);

    /**
     * 删除角色下用户
     * @param req
     * @return
     */
    Boolean delRoleUser(DelRoleUserReq req);
}
